//
//  AppDelegate.swift
//  WeiBo
//
//  Created by apple on 16/6/23.
//  Copyright © 2016年 itheima. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.

        
        
//        HMEmoticonManager.readEmoticon()
        
        print(NSHomeDirectory())
        
        
//
//        sleep(2)
        
//        fatalError("就是一个崩溃")
        
        // 设置跟视图控制器
        window = UIWindow(frame: UIScreen.mainScreen().bounds)
        
        window?.makeKeyAndVisible()
        
        window?.rootViewController = rootVC() //HMWelComeViewController()//HMTabBarViewController()
        // 先来判断一下是否登录

        // 第一步: 注册通知
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "enter:", name: kNotificationChangeRootViewController, object: nil)
        
        
        setupAppreance()
        
        return true
    }

    // MARK:-- 通知的监听方法
    @objc private func enter(noti: NSNotification){
        
        print(noti.object)
        
        // 先可选转成一个 HMOuathVC
        // 我们需要判断一下 这个是不是
        if let vc = noti.object as? UIViewController {
            
            // 是不是
            if vc is HMOauthViewController {
                // 如果这个通知是HMOauthViewController 它发过来的,切换控制器的时候
                window?.rootViewController = HMWelComeViewController()
            } else {
                
                window?.rootViewController = HMTabBarViewController()
            }
        
        }
        
        
    }
    
    private func rootVC() -> UIViewController {
       return    HMOauthViewModel.shareInstance.isLogin ? (HMWelComeViewController()) : (HMTabBarViewController())
    }
    
    private func setupAppreance(){
        
        // 设置 UINavigationBar 或者 UITabBar的颜色的时候,建议在程序已启动的时候就设置
        UINavigationBar.appearance().tintColor = UIColor.orangeColor()
        
        // 设置 tabBar的 tintColor
        UITabBar.appearance().tintColor = UIColor.orangeColor()
    }
    
    
    // MARK:-- 移除通知 : 第三步
    // 这个方法不会走,但是 我们一定要有习惯
    deinit{
        
        NSNotificationCenter.defaultCenter().removeObserver(self)
        
    }

}

